package com.jxpanda.spring.module.auth.core.user;

import org.springframework.security.core.userdetails.ReactiveUserDetailsService;
import org.springframework.security.core.userdetails.UserDetails;
import reactor.core.publisher.Mono;

/**
 * 接口定义了用于处理用户详细信息的响应式存储库，专注于协作性用户身份管理
 * 它扩展了ReactiveUserDetailsService，以支持额外的用户保存和转换操作
 * 主要处理OAuth2认证流程中的用户信息
 */
public interface OAuth2ReactiveUserDetailsRepository extends ReactiveUserDetailsService {

    Mono<UserDetails> saveUser(OAuth2UserContext oAuth2UserContext);

    Mono<UserDetails> loadUser(OAuth2UserContext oAuth2UserContext);

}
